package com.grantheath.erebus.controller.initializationCommands.initializeTransitionManagersCommands
{
	import com.grantheath.erebus.model.enum.notifications.ErebusURLNotifications;
	import com.grantheath.erebus.controller.initializationCommands.ErebusInitializePageCommand;
	import com.grantheath.erebus.controller.URLCommands.ErebusRewriteURLCommand;
	import com.grantheath.erebus.model.enum.notifications.ErebusTransitionNotifications;
	import com.grantheath.erebus.model.enum.notifications.ErebusPreloaderNotifications;
	import com.grantheath.erebus.model.enum.notifications.ErebusPageNotifications;
	import com.grantheath.erebus.model.enum.notifications.ErebusPageLoaderNotifications;
	import com.grantheath.erebus.model.enum.notifications.ErebusAssetLoaderNotifications;
	import com.grantheath.erebus.model.enum.notifications.ErebusInitializationNotifications;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusTransitionInteruptedCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusAssetLoadCompleteCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusLoadAssetCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusPreloaderHiddenCommand;
	import com.grantheath.erebus.controller.initializationCommands.ErebusUnitializePageCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusPageLoadCompleteCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusLoadPageCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusPageHiddenCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.normalFlow.ErebusPageShownNormalFlowCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.normalFlow.ErebusPageUninitializedNormalFlowCommand;
	import com.grantheath.erebus.controller.transitionManagers.linearTransitionManagers.ErebusTransitionCompleteCommand;
	import com.grantheath.erebus.controller.initializationCommands.initializeTransitionCommands.ErebusInitializeTransitionNormalFlowCommand;

	import org.puremvc.as3.interfaces.INotification;
	import org.puremvc.as3.interfaces.ICommand;
	import org.puremvc.as3.patterns.command.SimpleCommand;

	/**
	 * @author grantheath
	 */
	public class ErebusInitializeTransitionManagersNormalFlowCommand extends SimpleCommand implements ICommand 
	{
		override public function execute(notification : INotification) : void
		{
			facade.registerCommand(ErebusPreloaderNotifications.PRELOADER_HIDDEN, ErebusPreloaderHiddenCommand);
			facade.registerCommand(ErebusPageLoaderNotifications.LOAD_PAGE, ErebusLoadPageCommand);
			facade.registerCommand(ErebusPageLoaderNotifications.PAGE_LOAD_COMPLETE, ErebusPageLoadCompleteCommand);
			facade.registerCommand(ErebusPageNotifications.UNINITIALIZE_PAGE, ErebusUnitializePageCommand);
			facade.registerCommand(ErebusPageNotifications.PAGE_UNITIALIZED, ErebusPageUninitializedNormalFlowCommand);
			facade.registerCommand(ErebusPageNotifications.PAGE_HIDDEN, ErebusPageHiddenCommand);
			facade.registerCommand(ErebusPageNotifications.PAGE_SHOWN, ErebusPageShownNormalFlowCommand);
			facade.registerCommand(ErebusPageNotifications.INITIALIZE_PAGE, ErebusInitializePageCommand);
			facade.registerCommand(ErebusAssetLoaderNotifications.LOAD_ASSET, ErebusLoadAssetCommand);
			facade.registerCommand(ErebusAssetLoaderNotifications.ASSET_LOAD_COMPLETE, ErebusAssetLoadCompleteCommand);
			facade.registerCommand(ErebusInitializationNotifications.INITIALIZE_TRANSITION, ErebusInitializeTransitionNormalFlowCommand);
			facade.registerCommand(ErebusTransitionNotifications.TRANSITION_INTERUPTED, ErebusTransitionInteruptedCommand);
			facade.registerCommand(ErebusTransitionNotifications.TRANSITION_COMPLETE, ErebusTransitionCompleteCommand);
			facade.registerCommand(ErebusURLNotifications.REWRITE_URL, ErebusRewriteURLCommand);
		}
	}
}
